"""加密是通过某种特殊方式我们的信息处理的不可读，
加密在我们信息存储的过程总起到了至关重要的作用。
现在需要两个函数实现加密和解密
【1】加密函数名为str encryption，解密函数名为str decryption
【2】加密的过程，先讲字符串反序，然后将每个位置上的字符转为ASCII码-10后的字符。
比如我们原字符：abc123>反序后：321cba>ASCIl码减10后的字符为：）（"YXW
【3】解密算法相反
【4】校验功能：输入一个字符，要求只能输入字符和数字，输出其加密后的字符，
并且对加密后的密文解密"""


def str_encryption(content: str):
    revers_content_list = list(reversed(content))
    ascii_list = []
    for item in revers_content_list:
        ascii_list.append(ord(item) - 10)
    result_list = []
    for item in ascii_list:
        result_list.append(chr(item))
    return "".join(result_list)


def str_decryption(content: str):
    revers_content_list = list(reversed(content))
    ascii_list = []
    for item in revers_content_list:
        ascii_list.append(ord(item) + 10)
    result_list = []
    for item in ascii_list:
        result_list.append(chr(item))
    return "".join(result_list)


if __name__ == "__main__":
    while True:
        content = input("输入需要加密的字符串：")
        if content.isalnum() != True:
            print("输入仅限字母和数字")
            continue
        else:
            encryption = str_encryption(content)
            print("加密后为：", encryption)
            decryption = str_decryption(encryption)
            print("解密后为：", decryption)
            break

